home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / FAQ.SWG / 0021_Reading Array from REGS.pas < prev    next >
Pascal/Delphi Source File  |  1993-11-02  |  1KB  |  53 lines

  1. {
  2. MARK OUELLET
  3.  
  4. >  How  can  I  read what appears to be an Array from the Registers value
  5. >  (this is after  making  the  interrupt  call,  and  is  returned  With
  6. >  information...   I'll   be   durned   if   I  know  how  to  use  it):
  7.  
  8. > values upon return
  9. > AX    = clear on successful (or whatever ... not important)
  10. > ES:DX = see table 2.1
  11. >
  12. > table 2.1
  13. > offset - info (size)
  14. > -----------------------------
  15. > 00h    - blah blah (4 Bytes)
  16. > 03h    - blah blah (16 Bytes)
  17. > etc ....
  18. >
  19. > And the ES:DX usually points to what appears to be a Record, or a buffer
  20. > of data using an offset to identify what's what.  How can I use and/or
  21. > access this info?
  22. }
  23.  
  24.  Type
  25.     TablePtr = ^Table
  26.     Table = Record
  27.       BlahBlah1 : LongInt; { 4Bytes }
  28.       BlahBlah2 : Array[1..16] of Byte;
  29.       .
  30.       .
  31.       etc....
  32.     end;
  33. {
  34.     if using Intr() or MSDos() and the Registers  structure  defined  in
  35. Dos.tpu then:
  36. }
  37. Var
  38.   Regs    : Registers;   {Defined in Dos.tpu}
  39.   MyTable : TablePtr;
  40.  
  41. begin
  42.   Regs.AX := ??;
  43.   Regs.BX := ??;
  44.   Intr(Regs);
  45.   TablePtr := Ptr(Regs.ES, Regs.DX);
  46.  
  47.   Write(TablePtr^.BlahBlah1);
  48.   .
  49.   .
  50.   etc...
  51.  
  52.  
  53.